/*
FS listBox Controller
Version 1.0.0
Por Rodrigo Fante
http://www.fazedordesite.com
Mantenha os créditos pelo menos ;D
*/

function ordenarLista(select){
	// Arrays que vao guardar os valores
	arrTextos = new Array(); // text de cada option
	arrValues = new Array(); // value de cada option
	arrGuardaTextos = new Array(); // text de cada option de novo
	// iniciamos o array com valor vazio
	// Isso para ele nao ordenar a palavra "Todos" que joga todos os 
	// elementos para o outro listBox
	arrTextos[0]=arrValues[0]=arrGuardaTextos[0]=""; 
	
	// total de elementos no listBox
	var total = select.length;
	
	// pego os valores do listBox e jogamos pros arrays
	for(i=1; i<total; i++){
		arrTextos[i] = select.options[i].text;
		arrValues[i] = select.options[i].value;
		arrGuardaTextos[i] = select.options[i].text;
	}
	// orderna o array com os "text"
	arrTextos.sort();
	
	// primeiro loop começa do 1 para ignorar o 0 que é o "todos"
	for(i=1; i<total; i++){
		// defino o texto do listBox ja ordenado
		select.options[i].text = arrTextos[i];
		// agora busco pelo array nos textos antigo guardados qual bate com o 
		// que estou pegando agora, e pego seu valor e defino no listbox
		for(j=1; j<total; j++){
			if (arrTextos[i] == arrGuardaTextos[j]){
				select.options[i].value = arrValues[j];
				j = select.length;
			}
		}
	}
}
function move(form,select1,select2){
	form = document[form];
	select1 = form[select1];
	select2 = form[select2];
		
	var listText = select1.options[select1.selectedIndex].text //Nome Elemento
	var listValue = select1.options[select1.selectedIndex].value //Valor(value) do  Elemento
	
	if (select1.options.length > 0 && select1.selectedIndex != -1) {
		if (listValue != "todos") {
			// envia 1 elemento do select1 para o 2
			select2.options[select2.options.length] = new Option(listText, listValue); // passa o item do select1 para o 2
			select1.options[select1.selectedIndex] = null; // elimina do select1
			ordenarLista(select2); // ordena o select2
		}else if (select1.options.length > 1 && select1.selectedIndex != -1) {
			// envia todos os elementos do select1 para o 2
			var total = select1.options.length - 1;
			for (i = 0; i < total; i++) {
				var Nome_Elemento = select1.options[1].text //Nome Elemento
				var Valor_Elemento = select1.options[1].value //Valor(value) Elemento
				
				select2.options[select2.options.length] = new Option(Nome_Elemento, Valor_Elemento); // passa o item do select1 para o 2
				select1.options[1] = null; //elimina do select1			
			}
			ordenarLista(select2);	// depois de varrer todos elementos, ordena a select2		
		}
	}		
}